home *** CD-ROM | disk | FTP | other *** search
- MS-Kermit for the iRMX Operating Systems
-
-
- INTRODUCTION
-
- Version 2.30 of MS-Kermit, the richest and most widely used implementation of
- Kermit for the small computer, has been ported to iRMX 86 and iRMX 286. A DOS
- emulator provides enough of the DOS environment to allow the essentially
- unchanged MS-Kermit code to run under both of the iRMX Operating Systems.
-
- This document discusses differences between Kermit and MS-Kermit, where Kermit
- refers to the iRMX version and MS-Kermit refers to the DOS program. Users
- unfamiliar with MS-Kermit may prefer to read this in conjunction with
- MSKERM.DOC. Wherever MSKERM.DOC refers to the BACKSPACE key, the RUBOUT or DEL
- key is used in iRMX. Kermit's initialization command file, called MSKERMIT.INI
- in MSKERM.DOC, is called KERMIT.INI for iRMX. (Actually, it's ".INI." suffixed
- to whatever Kermit is named.)
-
- Directions for installation and configuration are included at the end of this
- document.
-
-
- SYSTEM REQUIREMENTS
-
- An iRMX system with the usual logical devices :TERM:, :WORK:, and at least one
- of :LP: or :BB: is required. If :LP: doesn't exist, Kermit's printer output
- will be discarded. File transfers with a local PC can be accomplished using
- the serial port for the iRMX system's terminal. An additional serial port is
- necessary for file transfers with a remote computer.
-
-
- FEATURES NOT IMPLEMENTED
-
- PUSH has not been implemented. Unlike the DOS implementations, there is
- nothing that could be done with PUSH that can't be done with RUN. Users
- wanting the convenience of PUSH may RUN the variously named cli CUSP available
- in iRMX 286 starting with Release 2, or iRMX 86 starting with Release 8.
-
- SHOW MODEM has not been implemented. DSR, CTS, and CD information are not
- available from the Terminal Support Code.
-
- VT102, Heath/Zenith-19, and Tektronix terminal emulation, as well as all of the
- SET TERMINAL commands have not been implemented. You can use the terminal of
- your choice and configure Kermit to work with it.
-
- You cannot transmit a break to the remote computer. Although some serial
- communication board's firmware supports sending breaks, the iRMX Terminal
- Support Code does not.
-
-
- PATH AND FILE NAMES
-
- Kermit will accept any iRMX path or file name with one exception. In file
- sending, if the right-most path separator is ^, it must be followed by a
- redundant /. For example: ^/UNCLE.FILE and ^UNCLE.FILE are the same in iRMX,
- but only the first will work in Kermit. MS-Kermit doesn't recognize ^ as a
- path separator, so we have to fool it.
-
- Wherever Kermit accepts a wild card file specification, a list of file names
- may be used, as long as they are all in the current $ directory.
- For example:
-
- SEND READ.ME.FIRST,*X*.A*,*.OBJ,ETC.ETC
-
- works. Try to say that in DOS.
-
- When Kermit is in SERVER mode, operating as the "remote" Kermit, it will
- respond to a GET file-name-list from the "local" Kermit.
-
- Kermit will rename incoming files to match DOS naming rules. It's still
- basically a DOS program.
-
- The command:
-
- SEND ,
-
- is an extension to MS-Kermit that tells Kermit to send those files unsent from
- the previous wild card batch. If you are well into a "SEND *", when you lose
- your connection to the remote computer, you can "SEND ,", after you reestablish
- your connection, and the SEND will be resumed with the next file from the wild
- card batch. The interrupted file will have to be sent individually.
-
-
- USAGE NOTES
-
- The Kermit TYPE command is the iRMX COPY command. The Kermit DEL command is
- the iRMX DELETE command. Kermit will accept any iRMX DIR command. This
- applies to SERVER mode response to REMOTE DEL, REMOTE DIR, and REMOTE TYPE, as
- well. Examples:
-
- TYPE SAMPLE.FILE TO :LP:
- DEL * Q
- DIR $ FOR *.P86 L
-
- Continuation can be used with the RUN command. For example:
-
- RUN ATTACHDEVICE T4 AS COM2 &
- RUN PHYSICAL
-
- is equivalent to:
-
- RUN ATTACHDEVICE T4 AS COM2 PHYSICAL
-
- Type-ahead from the entry of a DIR, DEL, RUN, SPACE, or TYPE command to the
- next Kermit command input prompt is discarded.
-
- SET DEFAULT-DISK will accomplish nothing. Use the Kermit CWD command to change
- disk drives and/or directories. The CWD command is not the same as the iRMX
- ATTACHFILE command. Use CWD :HOME: where you would simply say ATTACHFILE.
- Upon exit, Kermit returns you to the same $ directory you were in when you
- called Kermit.
-
- DISABLE SEND completely disables sending a file to the server, rather than
- restricting its destination to the server's current directory.
-
- When operating as the remote system, the server returns messages prefixed with
- "Kermit-MS".
-
- The kermit action verbs available for SET KEY are \Kexit (exit Connect mode),
- \Khelp (Connect mode help), \Kstatus (STATUS command), \Klogoff (suspend
- logging), \Klogon (resume logging), \Khangup (HANGUP command), and \Knull (send
- the null character out the serial port). These kermit action verbs are best
- bound to keys that send characters in the 80-0ffh range or control characters
- unused in your dialog with the remote computer. If ^E, for example, need never
- be typed to the remote computer, SET KEY \5 \KEXIT would make it a single
- keystroke exit from Connect mode. The scan codes for keys whose codes are 80h
- through 0ffh are \X180 through \X1ff.
-
- iRMX to iRMX file transfers are more efficient when the receiving Kermit's
- display mode is quiet. The Terminal Support Code is much slower receiving than
- sending.
-
- Faster machines may need to use SET SEND PAUSE for successful file transfer.
- This is especially true when communicating with IBM mainframes. The value to
- try is the number of milliseconds for 2 or 3 characters at the baud rate you
- are using.
-
- On fast machines, the output from Kermit informational commands, such as
- STATUS, may be quick enough to cause slow terminals to send an XOFF. Kermit
- disables recognition of output control characters in the input stream.
- Consequently, the ^S is ineffective and becomes the first character of the next
- Kermit command. Output control character disabling can be overridden with OSC
- configuration.
-
- While SET DESTINATION PRINTER works, it is very slow. The line printer driver
- hogs the processor. As a result, simultaneous read/write/compute is not
- possible. It's probably quicker to receive to disk and then copy to the
- printer.
-
- If ^W is used for a paging display while in the command being RUN or in DEL,
- DIR, SPACE, or TYPE, the Terminal Support Code will deadlock the system. Users
- with iRMX 286 Release 2, Update 2 can obtain the Class B Zaps 110, 112, and 113
- from Intel Software Support to fix this problem. iRMX 86 will be fixed in
- Release 8. A brute force workaround is described under OSC configuration.
-
- Kermit is a Human Interface command. When invoked from another program, it
- should be by sendcommand rather than loadiojob. Kermit's exit status is
- returned as the user fault code of exitiojob and is available as the command
- exception when Kermit is invoked by sendcommand. If non-zero, the high byte is
- 40h; the low byte contains the values mentioned in MSKERM.DOC, with an
- additional value of 0ffh meaning that Kermit bombed gracefully.
-
- Kermit has the appearance of being a CPU hog; the green light burns bright and
- steady. Actually, in the default, Kermit has simply substituted itself for the
- idle task.
-
- Kermit uses a scratch file to implement wild cards and REMOTE server commands
- that return information. Failure to exit Kermit, such as hanging up in the
- Terminal Support Code or re-booting while in Kermit, will result in an fnode
- and possibly some blocks becoming allocated but unreferenced. The fnode and
- blocks can be freed using DISKVERIFY.
-
-
- SERIAL PORTS
-
- There are ten serial ports, 0 through 9. Port 0 corresponds to :TERM:. Port
- n, for n > 0, corresponds to logical name :COMn: or :Tn:. At startup, Kermit
- looks for the first of ports 1 through 9. If none are found, a warning message
- is issued and port 0 is used, which is only useful when the other computer is a
- PC being used as the iRMX terminal.
-
- It is recommended that logical names for Kermit ports be established either in
- R?LOGON or KERMIT.INI. Either attachdevice or attachfile may be used in
- R?LOGON. (If physical device t4 is hard wired to a VAX and R?LOGON includes
- ATTACHDEVICE T4 AS VAX P then ATTACHFILE :VAX: AS T4 may be added.) In
- KERMIT.INI, use RUN ATTACHDEVICE or RUN ATTACHFILE.
-
- If you forget to establish any Kermit ports, call up Kermit without noticing
- the no port warning, set the baud rate and connect, you will change the baud
- rate of your terminal port. Although Kermit refuses to connect to port 0,
- MS-Kermit will have already initialized the port, thus changing its baud rate.
- The only recovery is to change your terminal's baud rate to match or re-boot
- the system.
-
- When a port whose physical device name is the same as :TERM:'s is selected,
- intentional single port operation is presumed and Kermit changes the display
- mode to QUIET to prevent screen displays from conflicting with file transfers.
- When a port is selected that changes from a one port to two port state, the
- display mode is restored to its previous value.
-
- The iRMX Terminal Support Code hangs up when a DTE configured port is active
- and you either plug or unplug the RS-232 cable.
-
- The iRMX 86 Terminal Support Code, when operating with unbuffered serial boards
- such as the 8251, can accept only a few characters at 9600 baud before losing
- some. Kermit can send at 9600 baud through such boards, but receiving is
- limited to 4800 baud. It can connect to a remote computer at 9600 baud, but
- will drop some characters if they are sent faster than fast typing speed.
-
- iRMX 286 users can use 9600 Baud with the 8274 device driver, but may need to
- restrict receive packet size to about 200 on 286/10's. There should be no baud
- rate problems on either OS up to 19200 baud with buffered serial I/O boards,
- such as the 544 or 188/48. When the improved serial device drivers scheduled
- for release in forthcoming OS updates (starting with iRMX 286, Release 3,
- Update 1, and iRMX 86, Release 8) are installed, baud rate restrictions will be
- reduced, if not eliminated. The new device drivers will improve Kermit
- performance significantly on both OS's, especially on faster systems. '386
- based systems should achieve 56.8 KB with ease.
-
- iRMX 86 R6 and iRMX 286 R1 Terminal Support Code Problems
-
- For middle and higher baud rates, 1200 and up for the 86/30, the TSC doesn't
- overlap read and compute. The consequences are most noticeable in Connect
- mode, when nothing will appear on the screen until the either the remote host
- stops sending or is XOF'd.
-
- Serial I/O results in system clock slow down. No, it's not relativity, it's
- probably great yawning chasms of code enclosed in CLI/STI brackets in the TSC.
-
- To solve these problems, use a later release of iRMX.
-
-
- SINGLE PORT OPERATION
-
- You can use Kermit on a single port system, if you have another computer that
- you can connect directly to it. For example, connect your iRMX system to a
- PC's COM port in place of your terminal. Call up Kermit on the PC, set the
- baud rate to match your iRMX system, and connect to it. Use the PC as the iRMX
- terminal. If there are no logical names :COMn: and :Tn:, where 0 < n < 10,
- Kermit will automatically select port 0 and change its default display mode to
- "quiet", which is necessary for one port operation.
-
- If you want to change the baud rate (see above, under serial ports), SET BAUD
- before issuing the SERVER command. The baud rate change won't take effect
- until the SERVER command. After issuing the SERVER command escape back to the
- PC's Kermit, resetting its baud rate, if necessary, and use SEND or GET for
- file transfer and the REMOTE command for any information you want from the iRMX
- system. When done, issue the LOGOUT command, which causes Kermit on iRMX to
- exit to the system. The terminal's baud rate and other attributes will be
- restored to their initial values. If you want to continue using the PC as a
- terminal, you may have to change its baud rate back before reconnecting.
-
- In one port operation, Kermit refuses to CONNECT. You may alternate use of
- port 0 with other ports and Kermit will change display modes for you
- automatically.
-
-
- INSTALLATION
-
- Kermit and, if you want to do wild card sends, the auxiliary WC command should
- be copied to one of the default search directories. The logical choice is
- :UTILS:, though they both needn't be in the same directory. If all you have is
- the source for WC, WC.P86, its comment header contains SUBMIT file contents to
- make the command for both OS's. The WC command isn't otherwise totally
- useless. Try entering "WC ?able,movie*" as an alternative to "DIR $ FOR
- ?able,movie*".
-
-
- CONFIGURATION
-
- Configuration is optional. While the primary configuration commands to
- consider for initial installation are BUFILL and OSC, this section contains
- enough information on Kermit operation to warrant an initial reading.
-
- The configuration file, KERMIT.CFG (actually it's ".CFG" suffixed to whatever
- you call Kermit), follows the rules for Kermit TAKE files with one
- configuration command per line. Kermit looks for KERMIT.CFG first in your
- default directory, $. If not found, it looks in the directory from which
- Kermit was loaded. Suppose you install Kermit by copying it to :UTILS:TOAD.
- The search would be, first :$:TOAD.CFG, then, :UTILS:TOAD.CFG. A system
- requiring configuration for different brand terminals or for different remote
- hosts can configure them all by using a different default directory for each.
-
- In the following configuration command descriptions, upper case is used for
- literal keywords, n refers to a decimal number, and \n refers to a number in
- Kermit backslash notation, i.e. "\" followed by an optional case insensitive
- radix letter followed by the number. Radix letters are D for decimal, X for
- hexadecimal, and O for octal. If omitted, the radix defaults to decimal.
-
- OSC string
-
- OSC can be used to configure Kermit's screen displays to your terminal, solve
- the fast system/slow terminal problem, prevent the ^W deadlock by brute force,
- or change Kermit's default terminal attributes. If your terminal is VT100
- compatible and is set to send space or no parity or you use SET DISPLAY SERIAL
- or QUIET and you can live with the "2J01;01H" at the beginning of the STATUS
- command's display, it is unnecessary.
-
- First you must decide if the regular screen formatted display during file
- transfers is what you want. The iRMX Terminal Support Code is reluctant to
- permit transparent input when translation is enabled. As a consequence, you
- have the choice between a decent screen format during file transfer, or a fully
- functional keyboard. When you choose the acceptable screen format, iRMX holds
- up the escape key for one extra keystroke, and if ^E, ^X, or ^Z are needed for
- terminal configuration (several terminals use ^Z for clear screen), they won't
- work as escapes during file transfer. Also, file transfer is quicker with a
- SERIAL or QUIET display. On the other hand, opting for the keyboard results in
- a hideous screen during file transfer, unless you SET DISPLAY SERIAL or QUIET.
-
- The string is a valid and complete OSC sequence WITHOUT the ESC [ lead-in or
- ESC \ terminator (see iRMX 86 Release 6 or iRMX 286 Release 1, BIOS Appendix F;
- or iRMX 86 Release 7 or iRMX 286 Release 2, Device Drivers User's Guide,
- Section 2.3). Any number of OSC commands may be used as long as each is
- complete and independent.
-
- The following example illustrates an OSC command sufficient for Kermit screen
- displays. It configures Kermit for the Qume QVT102, Televideo 910 Plus, 912,
- 920, 925, & 950, and Zentec Zephyr & Cobra terminals. Let's look at it to see
- how OSC configuration works.
-
- OSC T:T=1,F=1,U=32,E6=93,E30=75,E31=116
-
- T=1 enables translation
- F=1 vertical cursor coordinate precedes horizontal
- U=32 value for cursor row or column 1. 32 is the code for space
- E6=93 translate cursor positioning to ESC =
- E30=75 translate clear screen to ESC +
- E31=116 translate clear to end of line to ESC T
-
- Referring to the manual for your terminal and BIOS Tables F-4 and F-5 or DD
- Tables 2-3 and 2-4, edit the above to match your terminal.
-
- If your terminal sends even, odd, or mark parity, include "T:R=0" in your OSC
- to strip parity from terminal input. In this case you will not be able to use
- SET KEY for characters greater than 7fh, but then, you couldn't anyway.
-
- You can enable XON/XOF at Kermit command level with the OSC "C:O=0". If you
- do, you will lose ^W (erase word) at Kermit command level. It also prevents
- the ^W deadlock. You can retain Kermit's ^W by moving iRMX's ^W to another key
- with a control character redefinition OSC. Since control character definitions
- can not be determined, Kermit can not restore them. If you want them restored
- after exiting Kermit, you must type the control character redefinition OSC
- manually, or copy a file containing the OSC.
-
- The OSC "T:C23=0" provides brute force prevention of the ^W deadlock by
- disabling its function altogether. If you want it restored after exiting
- Kermit, you must type the OSC "ESC]T:C23=4ESC\" manually, or copy a file
- containing it.
-
- TRANSLATE
-
- By default, Kermit disables TSC translation when you connect to the remote
- computer. The TRANSLATE command enables TSC translation in Connect mode. It's
- possible to make your non-VT100 terminal behave like a VT100 if your
- mainframe's screen editor uses a subset of VT100 escape sequences that the TSC
- can translate or simulate.
-
- ESCC
-
- The ESCC command causes Kermit to send an ESC c, the VT100 reset, to your
- terminal on exit. You may want to use this if you have a VT100 compatible
- terminal or if you are unjustifiably optimistic about the Terminal Support
- Code. It's use has been known to deadlock Release 6 when TSC translation is
- enabled.
-
- BUFILL \n
-
- Kermit's serial input is content paced against a background fill whose default
- value is 0ffh. Some computers and intervening communication equipment (modems,
- switches, port selectors, etc.) send even or odd parity NUL or DEL as idle
- characters. After baud rate and parity settings, this is the most common cause
- of communication failure in Kermit. The telling symptom of a buffer fill
- problem is the appearance of hanging up some time after connect, after which
- local escape followed by reconnect clears the hang up -- even if for only one
- character.
-
- If 0ffh (even parity DEL or rubout) is sent by any equipment, you will have to
- change the serial buffer fill character. Values to try include \X7f, \X80, and
- \0. If there are several black boxes between the iRMX system and the remote
- computer, each may use a different idle character. Multiple tries may be
- necessary to find a workable buffer fill character. If none of these work,
- you'll have to find a character never sent. The maximum value is 255.
-
- If Kermit suddenly stops working after some time of successful operation, a
- little research will probably show that the powers that be did something like
- change a data switch from brand X to brand Y.
-
- CIFILL \n
-
- Terminal input is content paced against an 80h background. If your terminal
- sends 80h, use CIFILL to change the default. See the section above for
- suggested values.
-
- PRIORITY \n
-
- By default, Kermit sets its priority to 254 to guarantee more (numerically
- lower) priority for its I/O tasks regardless of how the system it's running on
- has been ICU'd. This permits it to stay out of the way in multi-user systems
- and in background operation. The maximum value is 254. If Kermit is included
- in round-robin scheduling, it will use its full time slice.
-
- SUB-PACK n
-
- This parameter tunes performance for file sending. Send packets are sent in
- bursts of default size 60. This optimizes send performance for an 86/30 at
- 19.2 KB with 1000 byte packets. Decreasing its value increases iRMX overhead,
- while increasing it reduces write/compute overlap. Factors effecting the
- optimal value include the CPU board, clock rate, baud rate, and packet size as
- well as the performance of the remote host. The transmission time/sub-packet
- size function has a broad minimum.
-
- CO-DELAY n
-
- This parameter tunes Connect mode performance. In Connect mode, output to the
- terminal is allowed to accumulate and is written every n system clock ticks.
- The default value is 6, nominally 60 ms. Increasing the value improves Connect
- mode performance at the expense of herky-jerk terminal output.
-
- MAX-BAUD n
-
- Users providing Kermit for clients may wish to limit the acceptable baud rate
- choices to the most restrictive of their iRMX system, the computer it connects
- with, or intervening communication equipment. Select the decimal number from
- one of Kermit's baud rates. The Kermit user cannot change the baud rate higher
- than the one specified. Note that baud rates 45.5, 134.5, and 113.6K are not
- available, because they cannot be expressed in one word.
-
- NO-MODEM
-
- Disables modem control. It's been reported that enabling modem control causes
- system problems with early, beta test 546, 547, and 548 board firmware. If you
- use such boards for serial communication, use this configuration option until
- your firmware is updated. The HANGUP command will not work when this option is
- used.
-
- DTR-TIME n
-
- The duration, in milli-seconds, that DTR is held down by the HANGUP command.
- The default is 500.
-
- For the HANGUP command to work, all of the following must be true. The port
- must be configured DTE, the serial board must support modem control, and the
- system must have been ICU'd with modem control enabled for the DTE port(s). A
- null-modem cable with a DCE port will not permit DTR control.
-
- ECHO ON or OFF
-
- ECHO ON causes subsequent CFG commands and TAKE file commands, including those
- from KERMIT.INI, to be displayed. This is useful for associating cryptic CFG
- error messages with the offending line. ECHO OFF stops CFG and TAKE file
- echoing.
-
- KILL \n
-
- Creates a "kill Kermit" task associated with the terminal input character
- specified by the parameter, usually an unused control character. Useful for
- developers, incorporators, and anyone trying to figure out how to connect a DTE
- port to their remote computer for the first time. This will not solve the ^W
- inspired TSC deadlock. Only killing the job from another terminal or warm boot
- will do.
-